﻿using Authentication.Model.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Authentication.Model.Interface
{
    public interface IConfigurationProvider
    {
        /// <summary>
        /// Get Dictionary by key
        /// </summary>
        /// <param name="applicationKey"></param>
        /// <returns></returns>
        Dictionary RetrieveDictionary(Guid applicationKey, string key);

        /// <summary>
        /// get application by key
        /// </summary>
        /// <param name="applicationKey"></param>
        /// <returns></returns>
        string[] DeleteDictionaries(Guid applicationKey, params string[] keys);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="dictionary"></param>
        /// <returns></returns>
        Dictionary AddDictionary(Dictionary dictionary);

        List<Dictionary> SearchDictionaries(Guid applicationKey, double? lifeTime);

        bool UpdateAppError(ApplicationError appError);

        List<ApplicationError> SearchAppError(out int totalRecord, bool? nullable, int pageSize, int pageIndex);
    }
}
